Direct memory access (DMA) can be used by a computer to access information stored on a memory without involving a processor responsible for managing the memory. Since there is no CPU consumption, DMA provides ultra-low latency and high throughput. In order to perform direct memory access, the computer must know the exact addresses of the information stored on the memory, instead of file names or other descriptive information that require a look-up by the processor. However, currently DMA can only be performed if the memory is statically allocated. If the memory is dynamically allocated, such as a JAVA™ heap memory portion, which is subject to routine reallocation, commonly referred to as “garbage collection,” then the desired information can have changed addresses within the memory before being accessed by the computer. A heap memory portion can be read without DMA, such as using “java.net.Socket”. However, this consumes CPU resources, and increases latency. If the heap memory portion is read with DMA, the information will be different after a garbage collection has been performed. Moreover, the computer can not be aware that the information accessed is different than the desired information.